package com.bridge.applets.model.vo.resp;

import io.swagger.models.auth.In;
import lombok.Data;

import java.util.List;

@Data
public class BridgeRecordResp {
    private Long recordId;
    private String bridgeName;
    private String bridgeCode;
    private Integer bridgeType;
    private Integer bridgeMeasureModelNumType0;
    private Integer bridgeMeasureModelNumType1;
    private Integer resultStatus;
    private String resultJson;
    private String extraJson;

    private List<ExtraImage> images;


    private NeuralNetworkData neuralNetwork;

    private IdentifyCaeData identifyCae;

    private MonitorAnalysisData monitorAnalysis;

    @Data
    public static class ExtraImage{
        private String name;
        private String url;
    }


    @Data
    public static class NeuralNetworkData{
        /**
         * 梁桥类型
         */
        private String girderType;

        /**
         * 主跨跨径 单位 m
         */
        private String mainSpan;

        /**
         * 车道数 数字
         */
        private String laneNumber;

        /**
         * 桥面宽度 单位 m
         */
        private String deckWidth;

        /**
         * 主梁类型 钢箱梁，钢加劲梁/钢桁梁，钢混组合梁，混凝土梁
         */
        private String mainBeamType;

        /**
         * 拱桥类型 [上承式，中承式，下承式]，存储示例 [1,0,0]
         */
        private String archBridgeType;

        /**
         * 矢跨比 数字
         */
        private String riseSpanRatio;

        /**
         * 桥塔数据 数字
         */
        private String towerNumber;

        /**
         * 桥塔高度 数字
         */
        private String towerHeight;

        /**
         * 结果数据
         */
        private String resultJson;
    }


    @Data
    public static class IdentifyCaeData{


        /**
         * 桥梁跨径布置 单位 m [30,30,30]一到多跨不等，数量视具体桥梁而定
         */
        private String spanArrangement;

        /**
         * 单边车道 数字
         */
        private String unilateralLane;

        /**
         * 是否有非机动车道 1-有 0-无
         */
        private String bicycleLane;

        /**
         * 是否有人行道 1-有 0-无
         */
        private String sideWalk;

        /**
         * 是否分幅 1-有 0-无
         */
        private String dividedSection;

        /**
         * 单梁界面类型 1-空心板梁 2 T梁 3-小箱梁
         */
        private String singleBeamInterfaceType;

        /**
         * 桥梁建设年代 数字
         */
        private String constructionYear;

        /**
         * 拱桥类型 [上承式，中承式，下承式]，存储示例 [1,0,0]
         */
        private String archBridgeType;

        /**
         * 是否是提篮拱 1-有 0-无
         */
        private String basketHandleArch;

        /**
         * 拱肋数量 数字
         */
        private String archRibNumber;

        /**
         * 拱肋横掌数量 数字
         */
        private String archRibHorizontalPalmNumber;

        /**
         * 拱肋横掌间距 数字
         */
        private String archRibHorizontalPalmSpace;

        /**
         * 拱截面类型 数字
         */
        private String archSectionType;

        /**
         * 拱矢跨比 数字
         */
        private String archRiseSpanRatio;

        /**
         * 拱下立柱间距 数字
         */
        private String archPillarSpace;

        /**
         * 吊索间距 （无吊索时填0） 数字
         */
        private String slingSpace;

        /**
         * 吊索数量 数字
         */
        private String slingNumber;

        /**
         * 加劲梁截面类型
         */
        private String stiffeningGirderSectionType;

        /**
         * 加劲梁材料类型
         */
        private String stiffeningGirderMaterialType;

        /**
         * 斜拉索面数 数字
         */
        private String inclinedCableFaceNumber;

        /**
         * 单边单面斜拉索数量 数字
         */
        private String singleSideFaceInclinedCableNumber;


        /**
         * 主塔纵向形状
         */
        private String mainTowerVerticalShape;
        /**
         * 主塔横向形状
         */
        private String mainTowerHorizontalShape;

        /**
         * 主塔桥面上下部高度比
         */
        private String mainTowerFloorUpperLowerHeightRatio;

        /**
         * 主塔桥面上部高度 数字
         */
        private String mainTowerFloorUpperHeight;

        /**
         * 是否有辅助墩 1-有 0-无
         */
        private String auxiliaryPier;

        /**
         * 辅助墩数量 数字
         */
        private String auxiliaryPierNumber;

        /**
         * 主缆矢跨比 数字
         */
        private String mainCableRiseSpanRatio;

        /**
         * 主缆跨径布置 单位 m [400,600,400]
         */
        private String mainCableSpanArrangement;

        /**
         * 锚定1与桥面高差 数字
         */
        private String anchorDeckHeightDiffOne;

        /**
         * 锚定2与桥面高差 数字
         */
        private String anchorDeckHeightDiffTwo;


        /**
         *主跨长度
         */
        private String mainSpanLength;
        /**
         *主跨数量
         */
        private String mainSpanNumber;
        /**
         *边跨1长度
         */
        private String sideSpanLengthOne;
        /**
         *锚跨1长度
         */
        private String anchorSpanLengthOne;
        /**
         *边跨2长度
         */
        private String sideSpanLengthTwo;
        /**
         *锚跨2长度
         */
        private String anchorSpanLengthTwo;

        /**
         * 主梁材料类型
         */
        private String mainMaterialType;
        /**
         * 桥梁宽度
         */
        private String bridgeWidth;

        /**
         * 桥梁总长途
         */
        private String bridgeLength;

        /**
         * 立柱数量布置
         */
        private String columnNumSpan;
        /**
         * 立柱高度
         */
        private String columnHeight;

        /**
         * 结果数据
         */
        private String resultJson;
    }


    @Data
    public static class MonitorAnalysisData{

        /**
         * 传感器采样频率（Hz）
         */
        private String sensorSamplingFrequency;

        /**
         * 使用的测量样本的数量
         */
        private String measurementSampleNumber;

        /**
         * 样本id集合（t_bridge_measure_model）,[1,2,3]
         */

        private String measurementSampleIds;

        /**
         * 测量样本类型 0-连续行车 1-跨中停车
         */
        private Integer sampleType;

        /**
         * 桥梁位置的EPSG代号
         */
        private String epscCode;

        /**
         * 结果数据
         */
        private String resultJson;
    }
}
